import Vue from "vue";
import Vuex from 'vuex'

Vue.use(Vuex)

// state 用来存放公共数据  相当于data
const state={
    num:0
}
// mutations 直接更改state数据的方法
const mutations={
    add(state,str){
        console.log(state)
        console.log(str)
        state.num +=1
    },
    // add(state,){
    //     console.log(state)
    //     // console.log(str)
    //     // console.log(name)
    //     state.num +=1
    // },

    // jian(state,{count}){
    //     state.num -= 1
    //     console.log(count)
    // }

    jian(state){
        state.num -= 1
    }

}
// actions 间接更改state数据的方法 触发mutations进行更改
const actions={
    oddAdd({state,commit},{name1,name2}){
        if( state.num % 2 ==1){
            // state.num += 1
            // console.log('这是奇数')
            commit('add',{name1,name2})
            // console.log(name1,name2)
        }
    },
    evenJian({state,commit}){
        if(state.num % 2 ==0){
            commit('jian')
        }
    }
}
// getters 包含多个计算属性的方法
const getters={
    evenOrOdd(){
        return state.num % 2 ? '奇数':'偶数'
    }
}
export default new Vuex.Store({
    state,
    mutations,
    actions,
    getters
})